package com.xcm.dao;

import java.util.List;

import com.xcm.model.TbDeviceInfo;
import com.xcm.model.TbMachine;
import com.xcm.model.dto.DeviceGroupDTO;

public interface DeviceInfoMapper {

	/**
	 * 保存终端
	 *
	 * @param deviceInfo TbDeviceInfo类型对象
	 */
	void saveDeviceInfo(TbDeviceInfo deviceInfo);

	/**
	 * 通过mac获取终端
	 *
	 * @param deviceMac 终端Mac
	 * @return TbDeviceInfo
	 */
	TbDeviceInfo getDeviceInfoByMac(String deviceMac);

	/**
	 * 更新终端
	 *
	 * @param deviceInfo TbDeviceInfo类型对象
	 */
	void updateDeviceInfo(TbDeviceInfo deviceInfo);
	 
	/**
     * 递归查询终端所属分组名称
     * @param groupCode 最小一级分组code码
     * @return
     */
	String queryGroupNamesByCodeRecursively(String groupCode);
	
	/**
	 * 通过机器码获取设备信息（该信息目前存放在dsp中，将数据导入到了我们自己的库中）
	 * @param deviceNum 终端机器码
	 * @return TbMachine
	 */
	TbMachine getMachineByMachineNum(String deviceNum);
	
	/**
	 * 获取所有分组code码
	 * @return
	 */
	List<DeviceGroupDTO> getAllGroups();
	
	/**
	 * 根据分组码获取该分组下所有在线设备的deviceId
	 * @param groupCode
	 * @return
	 */
	List<String> getOnLineDeviceNumByGroup(String groupCode);

}
